package com.peas.platform.module.icims.expenditure.expenses.adapter.repository.po;

import java.math.*;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.peas.platform.common.core.annotation.Comment;
import com.peas.platform.framework.mybatisplus.po.BasePo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.JdbcType;
import javax.validation.constraints.*;

// 报账单明细(合同)
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "`tbl_expenditure_reimbursement_contract`")
public class ExpenditureReimbursementContractPo extends BasePo {

    // 报账单ID
    // （报账单表）外键
    @Comment(value = "报账单ID")
    @TableField(value = "`expenditure_reimbursement_id`", jdbcType = JdbcType.BIGINT)
    private Long expenditureReimbursementId;

    // 合同编号
    @Comment(value = "合同编号")
    @Size(max = 100, message = "合同编号不能超过100个字符")
    @TableField(value = "`contract_no`", jdbcType = JdbcType.VARCHAR)
    private String contractNo;

    // 合同名称
    @Comment(value = "合同名称")
    @Size(max = 200, message = "合同名称不能超过200个字符")
    @TableField(value = "`contract_name`", jdbcType = JdbcType.VARCHAR)
    private String contractName;

    // 合同支付条件
    @Comment(value = "合同支付条件")
    @Size(max = 500, message = "合同支付条件不能超过500个字符")
    @TableField(value = "`contract_condition`", jdbcType = JdbcType.VARCHAR)
    private String contractCondition;

    // 合同主体内容
    @Comment(value = "合同主体内容")
    @TableField(value = "`contract_content`", jdbcType = JdbcType.CLOB)
    private String contractContent;

    // 合同支付费
    @Comment(value = "合同支付费")
    @TableField(value = "`amount_contract`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountContract;

    // 其他费
    @Comment(value = "其他费")
    @TableField(value = "`amount_other`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountOther;

    // 合同请款记录ID
    // 合同管理【初始合同执行-请款】
    @Comment(value = "合同请款记录ID")
    @TableField(value = "`contract_initial_cash_id`", jdbcType = JdbcType.BIGINT)
    private Long contractInitialCashId;

}
